/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.Controle;

import br.Modelo.Usuario;
import java.util.ArrayList;
import java.util.Vector;
import javax.swing.table.DefaultTableModel;
/**
 *
 * @author ItaloLopes
 */
public class ControleUsuario {
    private Usuario objUsuario;
    
    public ControleUsuario()
    {
        this.objUsuario = new Usuario();
    }
    
    public int Salvar(ArrayList<String> pLista)
    {
        this.objUsuario.setNomeUsuario(pLista.get(1));
        this.objUsuario.setLoginUsuario(pLista.get(2));
        this.objUsuario.setSenhaUsuario(pLista.get(3));
        
        this.objUsuario.setProximoCodigoInsercao();
        
        this.objUsuario.Salvar();
        return this.objUsuario.getIdUsuario();
    }
    
    public ArrayList<String> ConverterObjetoParaArray(){
        ArrayList<String> vetCampos = new ArrayList<String>();
        vetCampos.add(String.valueOf(this.objUsuario.getIdUsuario()));
        vetCampos.add(this.objUsuario.getNomeUsuario());
        vetCampos.add(String.valueOf(this.objUsuario.getLoginUsuario()));
        vetCampos.add(this.objUsuario.getSenhaUsuario());
        vetCampos.add(String.valueOf(this.objUsuario.getCadastroUsuario()));
        
        return vetCampos;
    }
    
    public ArrayList<String> RecuperaObjetos(int pCodigo)
    {
        objUsuario = objUsuario.RecuperaObjeto(pCodigo);
        return ConverterObjetoParaArray();
    }
    
    public ArrayList<String> RecuperaObjetoNavegacao(int pOpcao, int pCodAtual)
    {
        objUsuario = objUsuario.RecuperaObjetoNavegacao(pOpcao, pCodAtual);
        return ConverterObjetoParaArray();
    }
    
    public void Atualizar(ArrayList<String> pLista)
    {
        this.objUsuario.setIdUsuario(Integer.parseInt(pLista.get(0)));
        this.objUsuario.setNomeUsuario(pLista.get(1));
        this.objUsuario.setLoginUsuario(pLista.get(2));
        this.objUsuario.setSenhaUsuario(pLista.get(3));
        
        this.objUsuario.Alterar();
    }
    
    public void Excluir(double pCodigo)
    {
        this.objUsuario.setIdUsuario((int)pCodigo);
        this.objUsuario.Excluir();
    }
    
    public DefaultTableModel PesquisaObjeto(ArrayList<String> Parametros, DefaultTableModel TabelaModelo){
        // Decodificando o arraylist em variáveis.
        String Campo = Parametros.get(0);
        String Valor = Parametros.get(1);
        boolean EmQualquerParte = Parametros.get(2).equals("S");
        
        //Efetuando a pesquisa de objetos no banco de dados.
        ArrayList<Usuario> Usuario = this.objUsuario.RecuperaObjetos(Campo, Valor, EmQualquerParte);
        
        // Preenchendo a tabela com os dados retornados.
        Vector<String> vetVetor;
        Usuario objUsuarioBuffer;
        
        for(int i=0; i<Usuario.size(); i++){
            vetVetor = new Vector<String>();
            objUsuarioBuffer = Usuario.get(i);
            
            vetVetor.addElement(String.valueOf(objUsuarioBuffer.getIdUsuario()));
            vetVetor.addElement(objUsuarioBuffer.getNomeUsuario());
            vetVetor.addElement(objUsuarioBuffer.getLoginUsuario());
            vetVetor.addElement(objUsuarioBuffer.getSenhaUsuario());
            vetVetor.addElement(String.valueOf(objUsuarioBuffer.getCadastroUsuario()));
            TabelaModelo.addRow(vetVetor);
        }
        
        return TabelaModelo;
    }
}
